<?php
namespace app\model;

use think\Model;
use think\model\concern\SoftDelete;

class User extends Model
{
    //一对一
//    public function profile(){
//        return $this->hasOne(Profile::class,'user_id','id');
//    }
    //一对多
    public function profile(){
        return $this->hasMany(Profile::class,'user_id','id');
    }

    //多对多关联
    public function roles(){
        return $this->belongsToMany(Role::class,Access::class);
    }

 //利用模型来切换数据库，eg：mysql。
 //protected connection = 'mysql';

    //设置主键。
    //protected $pk = 'id';

    //设置表
    //protected $table = 'tp_user';

    //初始化操作
    //protected static function init(){
       // parent::init();
        //echo '初始化操作！';
    //设置字段信息
//    protected  $schema = [
//        'id'        =>  'int',
//        'username'  =>  'string'
//    ];
    //是否严格区分大小写
//    protected $strict = false;
//    public function getUsername(){
//        $obj = $this->find(302);
//        return $obj->getAttr('username');
//    }

    //设置status获取器
//    public function getStatusAttr($value){
//        //echo $value;
//        $arr = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核'];
//        return $arr[$value];
//    }
//    //设置一个虚拟nothing字段的获取器，就是为了既可以输出源数据，又可以输出替换后的数据。
//    public function getNothingAttr($value,$data){
//        $arr = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核'];
//        return $arr[$data['status']];
//    }
//    //email大写修改器
//    public function setEmailAttr($value){
//        return strtoupper($value);
//    }

    //只读字段，修改时无法修改。
    //protected  $readonly = ['username',email];

    //查询范围，男，5条
//    public function scopeMale($query){
//        $query->where('gender','男')
//              ->field('id,username,gender,email')
//              ->limit(5);
//    }
//    public function scopePrice($query,$value){
//        $query->where('price','>',$value);
//    }
//    public function scopeEmail($query,$value){
//        $query->where('email','like','%'.$value.'%');
//    }
//
//    //类型转换
//    protected  $type = [
//        'status'    =>      'boolean',
//        'price'     =>      'float',
//        'creat_time'=>      'datetime:Y-m-d'
//    ];

    //开启软删除
    //use SoftDelete;
    //protected $deleteTime = 'delete_time';
}